import {
	defineStore
} from 'pinia'
import {
	ref
} from 'vue'

// 定义一个名为 userStore 的 Pinia 存储模块
export const userStore = defineStore("user", () => {
	// 创建一个响应式引用 userInfo 来存储用户信息，初始为空对象
	let userInfo = ref({})
	// 创建一个响应式引用 isLogin 来表示用户是否登录，初始为 false
	let isLogin = ref(false)
	// 创建一个响应式引用 currentPos 来存储用户的当前位置，包含初始的经纬度
	let currentPos = ref({
		// 根据自己所在位置更改经纬度
		latitude: 34.343207,
		longitude: 108.939645
	})
	// 创建一个响应式引用 hasPos 来表示是否已经设置了用户位置，初始为 false
	let hasPos = ref(false)

	// 函数 setPos 用于设置用户的位置信息，接收纬度 lat 和经度 lon 作为参数
	function setPos(lat, lon) {
		// 更新 currentPos 的纬度值
		currentPos.value.latitude = lat
		// 更新 currentPos 的经度值
		currentPos.value.longitude = lon
		// 将 hasPos 标记为 true，表示已经设置了位置
		hasPos.value = true
		// 打印更新后的 currentPos 信息
		console.log(currentPos.value)
	}

	// 函数 addUserInfo 用于添加用户信息，接收用户的名称、密码和电话作为参数
	function addUserInfo(name, password, phone) {
		// 将用户名称存储到 userInfo 对象中
		userInfo.value.name = name;
		// 将用户密码存储到 userInfo 对象中
		userInfo.value.password = password;
		// 将用户电话存储到 userInfo 对象中
		userInfo.value.phone = phone;
		// 将 isLogin 标记为 true，表示用户已登录
		isLogin.value = true;
		// 可在此处添加更多的操作或逻辑，例如存储 token 等，当前为自行添加内容的提示
	}

	// 函数 clearUserInfo 用于清除用户登录状态和信息
	function clearUserInfo() {
		// 清除 userInfo 中的信息，将其置为空对象
		userInfo.value = {};
		// 将 isLogin 标记为 false，表示用户未登录
		isLogin.value = false;
		// 这里原代码中存在问题，未定义 token，可根据需要添加相应处理，例如清除 token 等
	}

	// 向外暴露存储模块中的数据和函数
	return {
		userInfo,
		isLogin,
		addUserInfo,
		clearUserInfo,
		currentPos,
		setPos,
		hasPos
	}
})